終於來到本系列的最後一篇文章。在先前的章節中,我們介紹了如何使用套件來開發應用程式,以及如何利用套件提升應用程式的品質。
開發團隊通常需要同時維護多個專案,尤其是在採用微服務架構(Microservice)的團隊中。團隊通常會將各個專案的文件結構、命名規範和配置設定都保持一致,這種標準化的作法有助於提高專案的可讀性和可維護性。例如,團隊維護的數個專案都採用了以下設置:
F
以及 N
插件因此,每當開發團隊要創建新專案時,往往需要花費時間重新搭建類似的目錄結構和配置相似的依賴套件。
在這篇文章中,我想介紹一個名為 Cookiecutter 的工具。這是一個 Command Line Tool,開發者可以根據預先定義的模板生成新專案,從而省去手動搭建目錄結構和配置的時間,並確保每個專案的設定保持一致。接下來,我將通過範例來進一步介紹這個工具。
在先前的章節中,我們使用 Poetry 來安裝套件,這是因為不同的專案可能需要使用不同版本的套件,因此必須將這些套件安裝在 Poetry 的虛擬環境中。然而,CookieCutter 命令行工具的目標是生成專案,它本身並不隸屬於任何特定專案,因此不建議通過 Poetry 來安裝。
官方建議使用 pipx 來安裝 CookieCutter。pipx 會將每個 Command Line Tool 安裝在獨立的虛擬環境中,這樣可以避免不同工具之間的版本衝突,同時會將其鏈接到全局路徑,方便開發者在任何目錄下使用這些工具。因此,pipx 非常適合用於管理 Python Command Line Tool。
首先,我們需要先安裝 pipx,大家可以參考 pipx 官方文件 中提供的多種安裝方式,根據自己的需求選擇合適的方法。安裝完成後,我們就可以使用 pipx 來安裝 Cookiecutter。
pipx install cookiecutter
目前在 GitHub 上已有許多現成的模板可供使用,常見的 Web Application 框架(例如 Django 和 Flask) 均有相關模板,開發團隊可以首先使用這些受歡迎的模板,參考其設計規範,然後逐步根據自身團隊的需求進行修改,最終建立出專屬於團隊的模板。
本次範例將使用 GitHub 上熱門的 Flask 模板。只需執行以下指令,模板將根據預設的自訂問題詢問使用者,這些問題可能包括專案名稱、所用的 Python 版本等。模板會根據這些參數生成專案。
cookiecutter https://github.com/cookiecutter-flask/cookiecutter-flask.git